#ifndef PWAVE_DATA3D_H
#define PWAVE_DATA3D_H

#include "swt_env_win_linux.h"
#include "lct_env_macros.h"


class Data3D {
public:
    int halo;
    int x_size, y_size, z_size;
    int BLK_SIZE_Y, BLK_SIZE_Z;
    int local_blk_size_y, local_blk_size_z;
    int ldx, ldy, ldz;
    __int64 blk_domain_size;

    double* compute_domain;


    virtual void allocate() = 0;
    virtual void free() = 0;

    virtual void init() = 0;
};

#endif //PWAVE_DATA3D_H
